package com.beilang.hotline.module.manager.impl;

import java.util.ArrayList;
import java.util.List;

import com.beilang.base.codelookup.manager.CodeLookupMgr;
import com.beilang.base.pagination.PaginationHelper;
import com.beilang.base.util.CodeConstant;
import com.beilang.hotline.module.dao.ModuleDAO;
import com.beilang.hotline.module.manager.ModuleMgr;
import com.beilang.hotline.module.model.ModuleModel;
import com.beilang.hotline.module.to.SearchTO;

public class ModuleMgrImpl implements ModuleMgr{
	
	private ModuleDAO moduleDAO;
	
	private CodeLookupMgr codeLookupMgr;
	
	public void setCodeLookupMgr(CodeLookupMgr codeLookupMgr) {
		this.codeLookupMgr = codeLookupMgr;
	}

	public void setModuleDAO(ModuleDAO moduleDAO) {
		this.moduleDAO = moduleDAO;
	}

	public ModuleModel createModule(ModuleModel moduleModel) {
		return moduleDAO.createModule(moduleModel);
	}

	public ModuleModel saveModule(ModuleModel moduleModel) {
		return moduleDAO.saveModule(moduleModel);
	}

	public void deleteModule(Long moduleId) {
		moduleDAO.deleteModule(moduleId);
	}

	public ModuleModel getModule(Long moduleId) {
		ModuleModel moduleModel = moduleDAO.getModule(moduleId);
        if (moduleModel!=null)
        {
            moduleModel.setSysName(codeLookupMgr.getCodeDesc(CodeConstant.SYS_NAME, moduleModel.getSysId().toString()));
        }
        return moduleModel;
	}

	public PaginationHelper getModuleList(PaginationHelper helper, SearchTO searchTO) {
		int count = moduleDAO.searchCount(searchTO);
		helper.setTotalSize(count);
		List list = moduleDAO.searchList(helper, searchTO);
		if(list!=null&&list.size()>0){
			List l=new ArrayList();
			for(int i=0;i<list.size();i++){
				ModuleModel moduleModel=(ModuleModel)list.get(i);
				moduleModel.setSysName(codeLookupMgr.getCodeDesc(CodeConstant.SYS_NAME, moduleModel.getSysId().toString()));
				l.add(moduleModel);
			}
			helper.setList(l);
		}else{
			helper.setList(list);
		}
		return helper;
	}

    public void deleteAllSysModules(Long sysId){
        moduleDAO.deleteAllSysModules(sysId);
    }
}
